package com.insnow.knowshare.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

// 处理跨域访问问题
@Configuration
public class GlobalCorsConfig {
    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurer() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**") // 添加映射路径，“/**”表示对所有的路径实行全局跨域访问权限的设置
                        .allowedOriginPatterns("*") // 开放哪些 IP、端口、域名的访问权限
                        .allowCredentials(true) // 是否允许发送 Cookie 信息
                        .allowedMethods("GET", "POST", "PUT", "DELETE") // 开放哪些 HTTP 方法，允许跨域访问
                        .allowedHeaders("*") // 允许 HTTP 请求中的携带哪些 Header 信息
                        .exposedHeaders("*"); // 暴露哪些头部信息（因为跨域访问默认不能获取全部头部信息）
            }
        };
    }
}